Motion Compensated Pulse Rate Estimation

Code Quality

Criteria Meet Specification

The project code is clean and modular.

  • Scripts have an intuitive, easy-to-follow structure with code separated into logical functions.
  • Naming for variables and functions follows the PEP8 style guidelines.

Code is well documented.

  • Comments are used to clearly describe tricky or opaque pieces of code.
  • Each function has a docstring.
  • The module containing the algorithm has a docstring describing the algorithm.

Numerical algorithms best practices.

  • Algorithm parameters are passed as function arguments.
  • Default values for algorithm parameters should be set.
  • Use module constants or function parameters instead of magic numbers.
  • Makes use of vectorized operations (e.g., with numpy) when doing so would make the code easier to read or noticeably faster.

Algorithm Specifics

Criteria Meet Specification

Use the correct input signals

  • Use the 2nd ppg signal in the third column of the troika data matrix. If you are using the provided starter code to parse the data files, then this happens automatically.

Follow signal processing and algorithm best practices.

  • The PPG and accelerometer signals should be bandpass filtered using a reasonable passband and filter design.
  • The accelerometer channels should be aggregated in a meaningful way (e.g., into a magnitude signal).

Algorithm error is computed correctly.

  • Reference values and estimates are appropriately paired (eg. using nearest neighbor or interpolation technique).
  • Mean absolute error is computed correctly.

Acceptable algorithm performance on the test set.

  • The mean absolute error at 90% availability is less than 10 BPM.

Algorithm runs without errors.

  • The algorithm should run on the test subject without errors.
  • The algorithm should produce a pulse rate estimate and a confidence value at least every 2 seconds.

Project Write-up

Criteria Meet Specification

Code Description.

  • The Project Write-up describes how to run the code.

Data Description.

The Project Write-up describes:

  • what activities were performed in the dataset.
  • features of the sensor that was used.
  • the quantity of data in the dataset.
  • short-comings of the dataset.

Algorithm Description

The Project Write-up describes:

  • how the algorithm works, including a description of the physiology.
  • an intuitive explanation of why the confidence algorithm produces a higher number for better estimates.
  • insightful caveats and failure-modes of the algorithm.

Algorithm Performance

The Project Write-Up describes

  • the algorithm performance and how it was computed.
    *It discusses the performance generalizability to other datasets.

Clinical Significance Description

The Clinical Conclusion describes:

  • the trends are observed in the data (women, men, compared)
  • the a possible reasoning for what is seen in the data
  • at least 1 technique or type of data source to clarify the current data
  • the validation/or not of the trend seen in resting heart rates.

Tips to make your project standout:

  1. Achieve a 90th-percentile mean absolute error less than 2 BPM on the test set.
  2. Include visualizations of the signal and your algorithm outputs in the write-up to better communicate how the algorithm works.
  3. Break down algorithm performance by activity and discuss this in the write-up.